<?php

    require '../init.php';

    // 验证表单数据是否为空;
    foreach($_POST as $key){
        if(empty($key)){
            redirect("表单数据不能为空");
            die;
        }
    }

    //判断验证码是否正确, 都转换成小写在进行比较;
    $vcode = strtolower($_SESSION['code']);// 创建验证码是传进session中的
    $uservcode = strtolower($_POST['vcode']);//从注册表单传过来的
    if($vcode != $uservcode){
        redirect("验证码不正确");
        die;
    }

    //接收参数
    $name = $_POST['name'];//名字
    $pwd = md5($_POST['pwd']);//密码用md5加密
    $tel = $_POST['tel'];//11位手机号
    $email = $_POST['email'];//邮箱

    //用户名规范验证 (以字母开头,4-15位字母数字下划线组成)
    $regex_name = '/^[a-zA-Z]\w{3,14}$/';
    if(!preg_match($regex_name, $name)){
        redirect("用户名格式不正确");
        die;
    }

    //两次密码输入是否一致验证
    if($pwd != md5($_POST['repwd'])){
        redirect("两次密码输入不一致");
        die;
    }

    //验证手机号
    $regex_tel = '/^1\d{10}$/';
    if(!preg_match($regex_tel, $tel)){
        redirect("手机号格式不正确");
        die;
    }

    //验证邮箱
    $regex_email = '/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$/';
    if(!preg_match($regex_email, $email)){
        redirect("邮箱格式不正确");
        die;
    }

    //查询数据库该用户名是否已经存在

    $sql = "select name from " . PRE ."user where name = '" . $name . "' limit 1";
    //接受查询结果
    $result = getRow($link, $sql);
    //如果$result不为空,说明该用户名已存在,注册失败
    if($result){
        redirect("该用户已存在");
        die;
    }

    // 插入用户到数据库
    $sql = "insert into ". PRE . "user (name,pwd,tel,email,create_time) values
    ('".$name."','".$pwd."','".$tel."','".$email."','".DATE."')";
    //执行sql语句
    $result = execute($link, $sql);
    //关闭mysql
    mysqli_close($link);
    if($result){
        //注册成功,返回到首页
        redirect("注册成功",3,ROOT_URL.'index.php');
        die;
    }else{
        redirect("注册失败");
        die;
    }
?>